using System;
using System.Collections.Generic;

namespace RFS.Domain.PaiShi.WorkFlow
{
    public interface IWorkFlowNode
    {
        string KeyName { get;  }
        string BatchNo { get;  }
        decimal Quantiy { get;  }
        decimal Amount { get;  }
        bool IsTheLastNode { get;  }
        bool IsCheckOutPoint { get;  }
        IWorkFlowNode ParentNode { get;  }
        IEnumerator<IWorkFlowNode> ChildrenNodes { get;  }
        IEnumerator<IWorkFlowNode> GetAllChildren { get;  }
        bool IsEmpty { get; set; }
        IEnumerable<IOrderItem> OrderItems { get;   }
        DateTime StartAt { get; set; }
        DateTime EndAt { get; set; }
        int Count { get; set; }
        IEnumerable<IOrderItem> GetUnRecordedItems { get; }
        void Recalculate();
        void Clear();
    }
}